package com.hjb.service.domain.SiteUserOrder;

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonFormat;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

@ApiModel(value="租房合同订单对象")
@Table(name = "site_user_order")
public class SiteUserOrder {
    /**
     * 经纪人生成订单ID：时间戳+经纪人ID=20180107010021100000
     */
    @Id
    @GeneratedValue(generator = "JDBC")
    @ApiModelProperty(value="id",required=true,notes="订单ID",example="20180114163504100000")
    private String id;

    /**
     * 租期，例如12,21就是12个月零21天
     */
    @Column(name = "time_offset")
    @ApiModelProperty(hidden=true)
    private String timeOffset;
    /**
     * 租户支付订单号
     */
    @Column(name = "order_no")
    @ApiModelProperty(hidden=true)
    private String orderNo;
    
    /**
     * 发起违约日期
     */
    @Column(name = "delay_date")
    @ApiModelProperty(hidden=true)
    private Date delayDate;
    
    /**
     * 还款日期
     */
    @Column(name = "repay_date")
    @ApiModelProperty(hidden=true)
    private Date repayDate;
    /**
     * 逾期状态
     */
    @Column(name = "late_status")
    @ApiModelProperty(hidden=true)
    private Integer lateStatus;
    /**
     * 经纪人ID
     */
    @Column(name = "user_id")
    @ApiModelProperty(hidden=true)
    private Integer userId;

    /**
     * 平台方式：1季付，2半年付，3年付
     */
    @ApiModelProperty(value="platformPayType",required=true,notes="平台付款方式",example="1")
    @Column(name = "platform_pay_type")
    private String platformPayType;

    /**
     * 还款期数：3,4
     */
    @Column(name = "pay_term")
    @ApiModelProperty(value="payTerm",required=true,notes="平台付款方式",example="3")
    private Integer payTerm;

    /**
     * 台账号
     */
    @Column(name = "change_no")
    private String changeNo;

    /**
     * 赎回方式：99赎回到银行卡，10转到活期，21转投7天，22转投
     */
    @Column(name = "return_type")
    @ApiModelProperty(hidden=true)
    private String returnType;

    /**
     * 申购日期20170726
     */
    @Column(name = "apply_date")
    @ApiModelProperty(hidden=true)
    private Integer applyDate;

    /**
     * 订单状态：0:申请中 1:待修改 2待扫码3:待审核，4审核中，5还款中，6已还清，7已违约，8审核拒绝
     */
    @ApiModelProperty(hidden=true)
    private Integer status;

    /**
     * 拒绝原因（给用户看）
     */
    @Column(name = "refuse_info")
    @ApiModelProperty(hidden=true)
    private String refuseInfo;

    /**
     * 拒绝真实原因（经纪人能看到）
     */
    @Column(name = "refuse_remark")
    @ApiModelProperty(hidden=true)
    private String refuseRemark;

    /**
     * 基础费率
     */
    @ApiModelProperty(hidden=true)
    private BigDecimal rate;

    /**
     * 优惠利率
     */
    @ApiModelProperty(hidden=true)
    @Column(name = "discount_rate")
    private BigDecimal discountRate;

    /**
     * 违约金费率
     */
    @ApiModelProperty(hidden=true)
    @Column(name = "delay_rate")
    private BigDecimal delayRate;

    /**
     * 月租金
     */
    @ApiModelProperty(value="cash",required=true,notes="租金",example="5000")
    private BigDecimal cash;

    /**
     * 租户总支付金额
     */
    @Column(name = "site_user_total_amt")
    @ApiModelProperty(hidden=true)
    private int siteUsertotalAmt;
    
    /**
     * 平台总支付金额
     */
    @Column(name = "plat_total_amt")
    @ApiModelProperty(hidden=true)
    private int platTotalAmt;
    
    /**
     * 租户姓名
     */
    @Column(name = "tenancy_name")
    @ApiModelProperty(value="tenancyName",required=true,notes="租户姓名",example="张三")
    private String tenancyName;

    /**
     * 租户手机号
     */
    @Column(name = "tenancy_mobile")
    @ApiModelProperty(value="tenancyMobile",required=true,notes="租户手机号",example="13886286698")
    private String tenancyMobile;

    /**
     * 租户证件号
     */
    @Column(name = "tenancy_idcard")
    @ApiModelProperty(value="tenancyIdcard",required=true,notes="租户身份证号",example="420621199001061215")
    private String tenancyIdcard;

    /**
     * 租住方式：1合租 2整租
     */
    @Column(name = "tenancy_type")
    @ApiModelProperty(value="tenancyType",required=true,notes="租住方式",example="1")
    private Integer tenancyType;

    /**
     * 起租日
     */
    @Column(name = "start_time")
    @ApiModelProperty(value="startTime",required=true,notes="起租日期",example="2018-01-07 15:26:00")
    private Date startTime;

    /**
     * 到期时间
     */
    @Column(name = "end_time")
    @ApiModelProperty(value="endTime",required=true,notes="截止日期",example="2018-04-07 15:26:00")
    private Date endTime;

    /**
     * 服务费承担方：1租客，2公寓
     */
    @Column(name = "fee_type")
    @ApiModelProperty(value="feeType",required=true,notes="服务费承担方",example="1")
    private String feeType;

    /**
     * 首付方式:1押一付一
     */
    @Column(name = "first_paytype")
    @ApiModelProperty(value="firstPaytype",required=true,notes="首付方式",example="1")
    private String firstPaytype;

    /**
     * 小区名称
     */
    @Column(name = "house_name")
    @ApiModelProperty(value="houseName",required=true,notes="小区名称",example="远洋天地")
    private String houseName;

    /**
     * 门牌号
     */
    @Column(name = "house_code")
    @ApiModelProperty(value="houseCode",required=true,notes="门牌号",example="64号楼")
    private String houseCode;

    /**
     * 房间号
     */
    @Column(name = "room_num")
    @ApiModelProperty(value="roomNum",required=true,notes="房间号",example="1007")
    private String roomNum;

    /**
     * 结算日期例子  20170706  索引查询
     */
    @Column(name = "settle_date")
    @ApiModelProperty(hidden=true)
    private Integer settleDate;

    /**
     * 备注
     */
    @ApiModelProperty(value="roomNum",required=false,notes="备注",example="输入备注信息")
    private String info;

    /**
     * 二维码生成地址
     */
    @Column(name = "qrcode_url")
    @ApiModelProperty(hidden=true)
    private String qrcodeUrl;

    /**
     * 租赁合同图片地址
     */
    @Column(name = "order_url")
    @ApiModelProperty(hidden=true)
    private String orderUrl;

    /**
     * 业主身份证地址
     */
    @Column(name = "owner_url")
    @ApiModelProperty(hidden=true)
    private String ownerUrl;

    /**
     * 房产证图片地址
     */
    @Column(name = "house_url")
    @ApiModelProperty(hidden=true)
    private String houseUrl;

    /**
     * 代理合同图片地址
     */
    @Column(name = "agent_url")
    @ApiModelProperty(hidden=true)
    private String agentUrl;

    
    /**
     * 新增订单的时间
     */
    @Column(name = "gmt_create")
    @ApiModelProperty(hidden=true)
    private Date gmtCreate;
    
    /**
     * 最后修改时间
     */
    @Column(name = "gmt_modify")
    @ApiModelProperty(hidden=true)
    private Date gmtModify;
    
    /**
     * 审核时间
     */
    @Column(name = "check_date")
    @ApiModelProperty(hidden=true)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date checkDate;
    
    /**
     * 逾期天数
     */
    @Column(name = "late_days")
    @ApiModelProperty(hidden=true)   
    private Integer lateDays;
 
    /**
     * 城市编码
     */
    @Column(name = "city_no")
    @ApiModelProperty(value="cityNo",required=true,notes="城市编码",example="000090")
    private String cityNo;
    
    
    
	public String getCityNo() {
		return cityNo;
	}

	public void setCityNo(String cityNo) {
		this.cityNo = cityNo;
	}

	public Integer getLateDays() {
		return lateDays;
	}

	public void setLateDays(Integer lateDays) {
		this.lateDays = lateDays;
	}

	/**
     * 获取经纪人生成订单ID：时间戳+经纪人ID=20180107010021100000
     *
     * @return id - 经纪人生成订单ID：时间戳+经纪人ID=20180107010021100000
     */
    public String getId() {
        return id;
    }

    /**
     * 设置经纪人生成订单ID：时间戳+经纪人ID=20180107010021100000
     *
     * @param id 经纪人生成订单ID：时间戳+经纪人ID=20180107010021100000
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取租户支付订单号
     *
     * @return order_no - 租户支付订单号
     */
    public String getOrderNo() {
        return orderNo;
    }

    public int getSiteUsertotalAmt() {
		return siteUsertotalAmt;
	}

	public void setSiteUsertotalAmt(int siteUsertotalAmt) {
		this.siteUsertotalAmt = siteUsertotalAmt;
	}

	public int getPlatTotalAmt() {
		return platTotalAmt;
	}

	public void setPlatTotalAmt(int platTotalAmt) {
		this.platTotalAmt = platTotalAmt;
	}

	/**
     * 设置租户支付订单号
     *
     * @param orderNo 租户支付订单号
     */
    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    /**
     * 获取经纪人ID
     *
     * @return user_id - 经纪人ID
     */
    public Integer getUserId() {
        return userId;
    }

    /**
     * 设置经纪人ID
     *
     * @param userId 经纪人ID
     */
    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    /**
     * 获取平台方式：1季付，2半年付，3年付
     *
     * @return platform_pay_type - 平台方式：1季付，2半年付，3年付
     */
    public String getPlatformPayType() {
        return platformPayType;
    }

    /**
     * 设置平台方式：1季付，2半年付，3年付
     *
     * @param platformPayType 平台方式：1季付，2半年付，3年付
     */
    public void setPlatformPayType(String platformPayType) {
        this.platformPayType = platformPayType;
    }

    /**
     * 获取还款期数：3,4
     *
     * @return pay_term - 还款期数：3,4
     */
    public Integer getPayTerm() {
        return payTerm;
    }

    /**
     * 设置还款期数：3,4
     *
     * @param payTerm 还款期数：3,4
     */
    public void setPayTerm(Integer payTerm) {
        this.payTerm = payTerm;
    }

    /**
     * 获取台账号
     *
     * @return change_no - 台账号
     */
    public String getChangeNo() {
        return changeNo;
    }

    /**
     * 设置台账号
     *
     * @param changeNo 台账号
     */
    public void setChangeNo(String changeNo) {
        this.changeNo = changeNo;
    }

    /**
     * 获取赎回方式：99赎回到银行卡，10转到活期，21转投7天，22转投
     *
     * @return return_type - 赎回方式：99赎回到银行卡，10转到活期，21转投7天，22转投
     */
    public String getReturnType() {
        return returnType;
    }

    /**
     * 设置赎回方式：99赎回到银行卡，10转到活期，21转投7天，22转投
     *
     * @param returnType 赎回方式：99赎回到银行卡，10转到活期，21转投7天，22转投
     */
    public void setReturnType(String returnType) {
        this.returnType = returnType;
    }

    /**
     * 获取申购日期20170726
     *
     * @return apply_date - 申购日期20170726
     */
    public Integer getApplyDate() {
        return applyDate;
    }

    /**
     * 设置申购日期20170726
     *
     * @param applyDate 申购日期20170726
     */
    public void setApplyDate(Integer applyDate) {
        this.applyDate = applyDate;
    }

    /**
     * 获取订单状态：0:申请中 1:待修改 2待扫码3:待审核，4审核中，5还款中，6已还清，7已违约，8审核拒绝
     *
     * @return status - 订单状态：0:申请中 1:待修改 2待扫码3:待审核，4审核中，5还款中，6已还清，7已违约，8审核拒绝
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置订单状态：0:申请中 1:待修改 2待扫码3:待审核，4审核中，5还款中，6已还清，7已违约，8审核拒绝
     *
     * @param status 订单状态：0:申请中 1:待修改 2待扫码3:待审核，4审核中，5还款中，6已还清，7已违约，8审核拒绝
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获取拒绝原因（给用户看）
     *
     * @return refuse_info - 拒绝原因（给用户看）
     */
    public String getRefuseInfo() {
        return refuseInfo;
    }

    /**
     * 设置拒绝原因（给用户看）
     *
     * @param refuseInfo 拒绝原因（给用户看）
     */
    public void setRefuseInfo(String refuseInfo) {
        this.refuseInfo = refuseInfo;
    }

    /**
     * 获取拒绝真实原因（经纪人能看到）
     *
     * @return refuse_remark - 拒绝真实原因（经纪人能看到）
     */
    public String getRefuseRemark() {
        return refuseRemark;
    }

    /**
     * 设置拒绝真实原因（经纪人能看到）
     *
     * @param refuseRemark 拒绝真实原因（经纪人能看到）
     */
    public void setRefuseRemark(String refuseRemark) {
        this.refuseRemark = refuseRemark;
    }

    /**
     * 获取基础费率
     *
     * @return rate - 基础费率
     */
    public BigDecimal getRate() {
        return rate;
    }

    /**
     * 设置基础费率
     *
     * @param rate 基础费率
     */
    public void setRate(BigDecimal rate) {
        this.rate = rate;
    }

    /**
     * 获取优惠利率
     *
     * @return discount_rate - 优惠利率
     */
    public BigDecimal getDiscountRate() {
        return discountRate;
    }

    /**
     * 设置优惠利率
     *
     * @param discountRate 优惠利率
     */
    public void setDiscountRate(BigDecimal discountRate) {
        this.discountRate = discountRate;
    }

    /**
     * 获取违约金费率
     *
     * @return delay_rate - 违约金费率
     */
    public BigDecimal getDelayRate() {
        return delayRate;
    }

    /**
     * 设置违约金费率
     *
     * @param delayRate 违约金费率
     */
    public void setDelayRate(BigDecimal delayRate) {
        this.delayRate = delayRate;
    }

	public BigDecimal getCash() {
		return cash;
	}

	public void setCash(BigDecimal cash) {
		this.cash = cash;
	}

	/**
     * 获取租户姓名
     *
     * @return tenancy_name - 租户姓名
     */
    public String getTenancyName() {
        return tenancyName;
    }

    /**
     * 设置租户姓名
     *
     * @param tenancyName 租户姓名
     */
    public void setTenancyName(String tenancyName) {
        this.tenancyName = tenancyName;
    }

    /**
     * 获取租户手机号
     *
     * @return tenancy_mobile - 租户手机号
     */
    public String getTenancyMobile() {
        return tenancyMobile;
    }

    /**
     * 设置租户手机号
     *
     * @param tenancyMobile 租户手机号
     */
    public void setTenancyMobile(String tenancyMobile) {
        this.tenancyMobile = tenancyMobile;
    }

    /**
     * @return tenancy_idcard
     */
    public String getTenancyIdcard() {
        return tenancyIdcard;
    }

    /**
     * @param tenancyIdcard
     */
    public void setTenancyIdcard(String tenancyIdcard) {
        this.tenancyIdcard = tenancyIdcard;
    }

    /**
     * 获取租住方式：1合租 2整租
     *
     * @return tenancy_type - 租住方式：1合租 2整租
     */
    public Integer getTenancyType() {
        return tenancyType;
    }

    /**
     * 设置租住方式：1合租 2整租
     *
     * @param tenancyType 租住方式：1合租 2整租
     */
    public void setTenancyType(Integer tenancyType) {
        this.tenancyType = tenancyType;
    }

    /**
     * 获取起租日
     *
     * @return start_time - 起租日
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    public Date getStartTime() {
        return startTime;
    }

    /**
     * 设置起租日
     *
     * @param startTime 起租日
     */
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    /**
     * 获取到期时间
     *
     * @return end_time - 到期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    public Date getEndTime() {
        return endTime;
    }

    /**
     * 设置到期时间
     *
     * @param endTime 到期时间
     */
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    /**
     * 获取服务费承担方：1租客，2公寓
     *
     * @return fee_type - 服务费承担方：1租客，2公寓
     */
    public String getFeeType() {
        return feeType;
    }

    /**
     * 设置服务费承担方：1租客，2公寓
     *
     * @param feeType 服务费承担方：1租客，2公寓
     */
    public void setFeeType(String feeType) {
        this.feeType = feeType;
    }

    /**
     * 获取首付方式:1押一付一
     *
     * @return first_paytype - 首付方式:1押一付一
     */
    public String getFirstPaytype() {
        return firstPaytype;
    }

    /**
     * 设置首付方式:1押一付一
     *
     * @param firstPaytype 首付方式:1押一付一
     */
    public void setFirstPaytype(String firstPaytype) {
        this.firstPaytype = firstPaytype;
    }

    /**
     * 获取小区名称
     *
     * @return house_name - 小区名称
     */
    public String getHouseName() {
        return houseName;
    }

    /**
     * 设置小区名称
     *
     * @param houseName 小区名称
     */
    public void setHouseName(String houseName) {
        this.houseName = houseName;
    }

    /**
     * 获取门牌号
     *
     * @return house_code - 门牌号
     */
    public String getHouseCode() {
        return houseCode;
    }

    /**
     * 设置门牌号
     *
     * @param houseCode 门牌号
     */
    public void setHouseCode(String houseCode) {
        this.houseCode = houseCode;
    }

    /**
     * 获取房间号
     *
     * @return room_num - 房间号
     */
    public String getRoomNum() {
        return roomNum;
    }

    /**
     * 设置房间号
     *
     * @param roomNum 房间号
     */
    public void setRoomNum(String roomNum) {
        this.roomNum = roomNum;
    }

    /**
     * 获取结算日期例子  20170706  索引查询
     *
     * @return settle_date - 结算日期例子  20170706  索引查询
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    public Integer getSettleDate() {
        return settleDate;
    }

    /**
     * 设置结算日期例子  20170706  索引查询
     *
     * @param settleDate 结算日期例子  20170706  索引查询
     */
    public void setSettleDate(Integer settleDate) {
        this.settleDate = settleDate;
    }

    /**
     * 获取备注
     *
     * @return info - 备注
     */
    public String getInfo() {
        return info;
    }

    /**
     * 设置备注
     *
     * @param info 备注
     */
    public void setInfo(String info) {
        this.info = info;
    }

    /**
     * 获取二维码生成地址
     *
     * @return qrcode_url - 二维码生成地址
     */
    public String getQrcodeUrl() {
        return qrcodeUrl;
    }

    /**
     * 设置二维码生成地址
     *
     * @param qrcodeUrl 二维码生成地址
     */
    public void setQrcodeUrl(String qrcodeUrl) {
        this.qrcodeUrl = qrcodeUrl;
    }

    /**
     * 获取租赁合同图片地址
     *
     * @return order_url - 租赁合同图片地址
     */
    public String getOrderUrl() {
        return orderUrl;
    }

    /**
     * 设置租赁合同图片地址
     *
     * @param orderUrl 租赁合同图片地址
     */
    public void setOrderUrl(String orderUrl) {
        this.orderUrl = orderUrl;
    }

    /**
     * 获取业主身份证地址
     *
     * @return owner_url - 业主身份证地址
     */
    public String getOwnerUrl() {
        return ownerUrl;
    }

    /**
     * 设置业主身份证地址
     *
     * @param ownerUrl 业主身份证地址
     */
    public void setOwnerUrl(String ownerUrl) {
        this.ownerUrl = ownerUrl;
    }

    /**
     * 获取房产证图片地址
     *
     * @return house_url - 房产证图片地址
     */
    public String getHouseUrl() {
        return houseUrl;
    }

    /**
     * 设置房产证图片地址
     *
     * @param houseUrl 房产证图片地址
     */
    public void setHouseUrl(String houseUrl) {
        this.houseUrl = houseUrl;
    }

    /**
     * 获取代理合同图片地址
     *
     * @return agent_url - 代理合同图片地址
     */
    public String getAgentUrl() {
        return agentUrl;
    }

    /**
     * 设置代理合同图片地址
     *
     * @param agentUrl 代理合同图片地址
     */
    public void setAgentUrl(String agentUrl) {
        this.agentUrl = agentUrl;
    }

	public Integer getLateStatus() {
		return lateStatus;
	}

	public void setLateStatus(Integer lateStatus) {
		this.lateStatus = lateStatus;
	}

	public Date getGmtCreate() {
		return gmtCreate;
	}

	public void setGmtCreate(Date gmtCreate) {
		this.gmtCreate = gmtCreate;
	}

	public Date getGmtModify() {
		return gmtModify;
	}

	public void setGmtModify(Date gmtModify) {
		this.gmtModify = gmtModify;
	}

	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	public Date getCheckDate() {
		return checkDate;
	}

	public void setCheckDate(Date checkDate) {
		this.checkDate = checkDate;
	}

	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	public Date getDelayDate() {
		return delayDate;
	}

	public void setDelayDate(Date delayDate) {
		this.delayDate = delayDate;
	}

	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	public Date getRepayDate() {
		return repayDate;
	}

	public void setRepayDate(Date repayDate) {
		this.repayDate = repayDate;
	}

	public String getTimeOffset() {
		return timeOffset;
	}

	public void setTimeOffset(String timeOffset) {
		this.timeOffset = timeOffset;
	}
	
}